home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turnbull China Bikeride
/
Turnbull China Bikeride - Disc 2.iso
/
STUTTGART
/
PROBLEMS
/
BENCHMARK
/
BUBBLESORT
/
bubbletest
/
provesrc
< prev
next >
Wrap
Text File
|
1992-05-16
|
3KB
|
122 lines
;INCLUDE <formula$dir>.function_h
.INCLUDE <bubbletest$dir>.func_asm
;DECLARE INT field(INT fieldnr,CHARPTR target,CHARPTR source)
B start
;CHAR bubbletest_dir[256]
;CHAR command[256]
;CHAR field2[256]
;INT ignorelines
;INT linecount
;INT handleprovefile
;CHAR nameprovefile[256]
;CHAR lineprovefile[512]
;INT handleoutput
;CHAR nameoutput[256]
;CHAR lineoutput[512]
;CHAR field1output[512]
start
;LET system("wimpslot -min 15K -max 15K");
;LET getenv(bubbletest_dir,"bubbletest$dir",255);
;LET strcpy(nameprovefile,bubbletest_dir);
;LET strcat(nameprovefile,".provefile");
;LET handleprovefile=openr(nameprovefile)
;IF errorflag
perror
SWI XOS_Exit
;ENDIF
;LET linecount=0;
;LET getclitail(command);
;LET field(2,field2,command)
;IF field2[0]==(CHAR)0
;LET ignorelines=0;
;ELSE
;LET ignorelines=string2int(field2)
;IF errorflag
perror
SWI XOS_Exit
;ENDIF
;ENDIF
;LET field(1,nameoutput,command);
;LET handleoutput=openr(nameoutput)
;IF errorflag
perror
;LET close(handleprovefile);
SWI XOS_Exit
;ENDIF
;WHILE ! eof(handleprovefile)
;LET linecount=linecount+1
;LET fgets(lineoutput,handleoutput,512);
;IF lineoutput[0]==(CHAR)0;
;LET fgets(lineoutput,handleoutput,512);
;ENDIF
;IF errorflag
perror
B bye
;ENDIF
;LET field(1,field1output,lineoutput)
;IF ( ((field1output[0] >= (CHAR)"0") && (field1output[0] <= (CHAR)"9")) \
; || (field1output[0]==(CHAR)"+") || (field1output[0]==(CHAR)"-") )
;IF ( (field1output[0]==(CHAR)"+") || (field1output[0]==(CHAR)"-") )
;LET strcpy(lineoutput,field1output+1)
;ELSE
;LET strcpy(lineoutput,field1output)
;ENDIF
;FOR (R1=0;((R1<strlen(lineoutput)-1) && (lineoutput[R1]==(CHAR)"0"));\
; R1=R1+1);
;ENDFOR
;LET strcpy(field1output,lineoutput+R1);
;LET strcpy(lineoutput,field1output);
;LET fgets(lineprovefile,handleprovefile,512);
;IF errorflag
perror
B bye
;ENDIF
;IF (strcmp(lineoutput,lineprovefile)!=0)
;LET writestr(" result in line ")
;LET writeint(linecount);
;LET writestr(" is different");
cr
;LET writestr(" line of output: ")
;LET writestr(lineoutput)
cr
;LET writestr(" line of provefile: ")
;LET writestr(lineprovefile)
cr
;ENDIF
;ELSE
;LET writestr(lineoutput)
;IF linecount > ignorelines
;LET fgets(lineprovefile,handleprovefile,512);
;IF errorflag
perror
B bye
;ENDIF
;ENDIF
cr
;ENDIF
;ENDWHILE
bye
;LET close(handleprovefile);
;LET close(handleoutput);
SWI XOS_Exit
.END